

# 13.3 对 int、iret 和栈的深入理解

# 在屏幕中显示 80 个 "!"

assume cs:code

code segemt
start:	mov ax,0b800h
		mov es,ax
		mov di,160*12

		mov bx,offset s-offset se    # 设置从标号 se到标号 s 的转移位移
		mov cx,80

	s:	mov byte ptr es:[di],'!'
		add di,2
		int 7ch				    	# 如果 (cx) != 0 ，转移到标号 s 处		
	se:	nop

		mov ax,4c00h
		int 21h
code ends
end start



# 中断程序 7ch 模拟 loop 指令

	lp:	push bp
		mov bp,sp
		dec cx
		jcxz lpret
		add [bp+2],bx
lpret:	pop bp
		iret
